Did you know ... Search Documentation:
Title for pldoc(default)
Branch: development (switch to stable),
version to version

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