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

SWI-Prolog Changelog from version 9.2.7 to 9.2.8

[Oct 23 2024]

  • BUILD: Make sure to clear DISPLAY when running xpce steps While the build works without a DISPLAY variable, an invalid variable causes the build to fail.
  • TEST: Disable collation_key/2 test for MacOS Macos Sequoia (15) wcsxfrm() returns garbage.

[Oct 22 2024]

  • FIXED: Avoid corruption in setjmp()/longjmp() Clang demands using a volatile variable for protecting the throw environment's parent. This is probably correct, although it seems weird to place this variable in a register.

[Oct 19 2024]

  • ENHANCED: Add Prolog navigator to theme/dark.pl

[Oct 18 2024]

  • FIXED: expand_term/2 to succeed twice when expanding a toplevel list. Results in duplicate clauses when compiling [f(1), f(2)].. Reported by Uwe Neumerkel.
  • FIXED: pack management: find available versions from wildcard URL. Patch by Nicos Angelopoulos

[Oct 17 2024]

  • PORT: Added FreeBSD signal names to the name/number map. Contributed by Dewayne Geraghty

[Oct 15 2024]

[Oct 8 2024]

  • 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.

[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.
  • ADDED: date_time_stamp/2: allow leaving components unbound from the right.

[Sep 27 2024]

  • DOC: #1323 Wrong claim on default for prefer_rationals flag.

[Sep 26 2024]

[Sep 24 2024]

  • FIXED: pack_publish/2 reporting (claimed failure)
  • ADDED: swipl pack publish --server=URL ... Allows publishing at an alternative server.
  • FIXED: Package manager, swipl pack publish . Broken detection of git directory and failure do deal with
    requires(prolog:flag(_Value)).

    to test for existence of a Prolog flag.

[Sep 23 2024]

  • FIXED: Possibly memory leak in LibBF arithmetic A thread race condition may lead to loosing cache values from get_trig(). Fixed using C11 atomics.

[Sep 22 2024]

  • FIXED: Use stack variable after return for LibBF bignums This leads to incorrect results and crashes when using really big bignums. The LibBF bignum implementation is by default used for the WASM version and the MacOS binaries.

[Sep 21 2024]

  • ENHANCED: install_pack/1,2 to prefer https over http for downloading. Unless insecure(true) or swipl pack install -k <pack> is given, possible HTTP links are automatically rewritten to HTTPS.

[Sep 20 2024]

[Sep 19 2024]

  • MODIFIED: argv_options/3: with type (bool|sometype) We now consider the option boolean unless written as --opt=value Before, the option was considered boolean if it was the last argument or the next argument started with a -.

[Sep 18 2024]

[Sep 16 2024]

  • ENHANCED: Arithmetic performance. This patch reverts 18d5d539af0807808ba6fee6ec66394aaec589f1 except for clang as it does cause a significant slowdown on some systems.

[Sep 17 2024]

  • PORT: Call gettid via its glibc wrapper if possible

[Sep 11 2024]

  • LEGAL: Resolved license issues for dialect/xsb/basics.pl Hi Jan, As the coder of a number of (but by no means all) the predicates in XSB's basics.P, I'm perfectly fine with you releasing under the BSD-2 license. Regarding the issues with XSB's licenses, we'll have to consider it and come to some decision. Best, -David

[Sep 8 2024]

  • DOC: Updated limits section

[Sep 5 2024]

[Sep 4 2024]

  • FIX: include stdbool

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

[Sep 21 2024]

  • DOC: Added C++ version of foreign.doc's calc.c example

[Sep 10 2024]

  • MODIFIED: Return type wrappers changed to bool, matching SWI-Prolog.h This matches the changes in SWI-Prolog.h with commit a1e914f

[Sep 8 2024]

  • DOC: added blob example (wrapped pointer)
  • ENHANCED: PlTerm::get_file_name() returns std::string

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]

[Sep 26 2024]

  • ADDED: Allow for throw(http_reply(hangup)) to simply hangup the line. This is not a valid reply, but can be used to quickly terminate connections as well as for testing error scenarios.

Package semweb

[Oct 9 2024]

  • FIXED: Make RDF GC thread stop gracefully.

[Oct 2 2024]

  • COMPAT: Support both old and new abort exception

Package sgml

[Sep 13 2024]

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.

[Sep 19 2024]

  • PORT: Avoid compiler warnings on 32 bit platforms

Package xpce

[Oct 19 2024]

  • ENHANCED: #38 Support themes in navigator.

[Oct 18 2024]

  • FIXED: #38 Avoid loading the GUI tracer when trace/util.pl is loaded. The navigator loads this, but should not load the GUI debugger itself.

[Oct 15 2024]

  • FIXED: Class tabbed_window: avoid sending ->resize_window when freed.

[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

[Sep 26 2024]

  • ADDED: Configure how the GUI tracer behaves if another threads hits it. The default now is to block such threads. Alternatively it may be set to nodebug, meaning the thread continues in nodebug mode or trace, meaning it opens a secondary trace window. The latter is how it used to work.

[Sep 25 2024]

  • FIXED: Argument indentation on next line
  • ADDED: PceEmacs: Indent dict values relative to the key when on next line
  • FIXED: PceEmacs language_mode<-argument_indent Should fail if there is no argument.

[Sep 18 2024]

  • ADDED: Allow disabling the message capturing popup for the session.

[Sep 13 2024]

[Sep 11 2024]

  • LEGAL: Resolved license issues wrt xdnd.[ch] by Paul Sheer (LGPL) This turns xpce on X11 effectively into LGPL. On Windows, this code is not used and thus BSD-2 is effective.

[Sep 5 2024]

[Sep 4 2024]

  • FIX: conflicting declarations noticed only by clang (not gcc)