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

SWI-Prolog Changelog from version 9.1.15 to 9.1.16

[Sep 25 2023]

  • PORT: Partial work to allow MSVC build under Conda. This patch works around issues for CMake FindThreads.cmake. It also explicitly enables MSVC `/MD` to compile the packages if threading is enabled.
  • BUILD: Runtime configuration during boot for Windows As, on Windows, we install all DLLs in the same directory we do not need to add the package bin dirs to the foreign search path. But, we must use prolog_to_os_filename/2 to ensure proper handling of the search based on the executable.

[Sep 18 2023]

  • FIXED: #1197 function cmpr failing for negative values.

[Sep 17 2023]

  • FIXED: #1097 ctrl-C in read causes exit from REPL Fix consists of two parts. (1) if something (libedit) already set the stream error condition, make S__fillbuf() return with an error immediately and (2) do not abort the main query loop if we get an abort request.

[Sep 16 2023]

[Sep 12 2023]

  • ENHANCED: Allow interrupts during evalExpression()
  • PORT: Make new stuff work again using MSVC

[Sep 11 2023]

  • ENHANCED: dark theme arithmetic used blue on black. [no ci]

[Sep 10 2023]

  • PERFORMANCE: Add shortcut to PL_unify_number() Add a shortcut for the typical case where the number is a small integer, the target is a variable and we are not short on stack space.
  • PERFORMANCE: Simplify clearNumber() Notably improves performance for float arithmetic.

[Sep 8 2023]

  • FIXED: Memory leak in PL_put_term_from_chars() fast route. This function implements a fast route for integers and rationals and leaked the GMP/LibBF object for rationals and large integers.
  • ENHANCED: PL_get_float() to raise a float overflow on too large rational.

[Sep 7 2023]

  • BUILD: Added scripts/configure This script is used for a long time to maintain multiple versions under the same source tree. See script for details. [no ci]
  • PORT: Work around broken MacOS versions lacking <term.h> Reported by Matthias Gondan after failing build for CRAN
  • FIXED: PL_get_nchars() and friends CVT_INTEGER handling Broken in 2ac1553770ac1a9d6753b8b6e72ac2028815a028
  • ADDED: PL_get_nchars(): CVT_XINTEGER Allow converting numbers to hexadecimal strings.

[Sep 6 2023]

Package cpp

[Sep 17 2023]

  • ENHANCEMENT: added PlAcquireStream

[Sep 11 2023]

  • ENHANCED: AtomMap utility

[Sep 7 2023]

  • DOC: blobs and exceptions
  • ENHANCED: std::string instead of char* in some calls (no code change needed) - Can add char* interface if needed for performance (unlikely) PlTerm(term_t) constructor is public, for consistency with PlAtom

Package jpl

[Sep 25 2023]

  • UPDATED: Java standards from 7 to 8. Support for 7 is dropped from latest OpenJDK releases and 7 is officially EOL for a while.

Package swipy

[Sep 21 2023]

  • DOC: Handling Undefined
  • ADDED: Class Undefined to deal with WFS undefined results.
  • MODIFIED: Renamed status and truth_vals to truth As decided in Janus meeting, September 20.

[Sep 20 2023]

  • TEST: Install XSB test data if installation includes the tests

[Aug 15 2023]

  • BUILD: Starting a pyproject.toml

[Sep 19 2023]

  • DOC: Document handling virtual environments.

[Sep 18 2023]

  • ADDED: Support Python virtual environments

[Sep 15 2023]

  • ADDED: Pass instances of class Enum as name (atom).

[Sep 14 2023]

  • FIXED: Avoid recursive errors crashing while janus.py is being loaded. It seems we cannot call certain APIs while processing an error.

[Sep 8 2023]

  • ADDED: Map Prolog rational numbers to Python fractions.Fraction().

[Sep 7 2023]

  • ENHANCED: Use hexadecimal conversion for bigints.
  • DOC: Included references
  • COMPAT: Sync py_func/3,4 and py_dot/4,5. Updated docs.
  • MODIFIED: Sync XSB view with current agreement. - pyfunc/3-5, pydot/4,5 renamed to py_func/3-5 and py_dot/4,5. - Deleted free_python_object/1 (=py_free/1)

[Sep 6 2023]

  • MODIFIED: Rules when py_object(true) is effective
  • MODIFIED: Use eval(Term) to evaluate Python expressions inline.
  • MODIFIED: Prolog representation of Python sets to use py_set(List) Was pySet(List).