Ann: SWI-Prolog 9.3.17

Dear SWI-Prolog user,

SWI-Prolog 9.3.17 is ready for download. Highlights:

  • Fixes regression in binary releases for MacOS and Windows where
    make/0 prints a lot of warnings.

  • Allows packs to be installed as autoload libraries. This
    allows packs to provide commands that are seamlessly available
    at the toplevel. This used to be possible from the pack
    metadata, but that feature was broken. Now it can be done
    for any pack using

    swipl pack install --autoload <pack>
    

    If the pack has an autoload declaration the user is prompted to
    honour it (or not).

  • Regression in merge_options/3, breaking e.g. SWISH.

  • Support C23 standard for building (issue with one of the CMake tests)

  • Fix using Janus package from Python if the target SWI-Prolog
    does not have Janus installed.

Update As of 9.3.16, library(ssl) for the Windows binaries was broken after an upgrade of the build docker. The first 9.3.17 release was also affected. We now use the OpenSSL DLLs from Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions. The Windows binaries have been re-released as 9.3.17-2 (note the 2). Anyone wishing to build using the Docker route should use the openssl-workaround branch for now. See also the Pack_list_installed? topic

Enjoy --- Jan

SWI-Prolog Changelog since version 9.3.16

  • BUILD: Add CMake option -DSWIPL_SO_VERSIONS to remove SOVERSION
    properties.

  • DOC: statistics/2 lost the keys globallimit, locallimit and
    traillimit. Reported by Jelmer Jellema.

  • FIXED: print_term/2: proper handling of operators(Ops) Needs to be kept
    consistent with write_options([… ignore_ops(IgnOps)]). Implemented
    consistency and deprecated the option. Reported by Mike Elston.

  • FIXED: merge_options(+Dict, +List, Merged) Resulted in no matching
    rule exception.

  • ADDED: library(prolog_colour): track CHR declaration locations

  • FIXED: Handling of home during boot session.

  • ENHANCED: pack_info/1: use colours and indicate autoload status.

  • MODIFIED: pack_install/2 option autoload(true) If present, the pack
    is installed as autoload pack regardless of autoload option in the
    meta-data. If the option is not present, the system asks the user to
    install as autoload library if the meta-data contains autoload(true).

    If autoloading is not enabled, the INDEX.pl file that may appear
    in the pack is removed.

    This patch also adds swipl pack install --autoload ...

  • FIXED: Make packs that provide an autoload library work again.

  • FIXED: cmake/TestSignalType.c for C++

  • PORT: Make cmake test for signal handler compatible with c23

Package http

  • ADDED: htmx_oob//2 to simplify emitting OOB data

Package swipy

  • FIXED: Allow using the janus module from Prolog when loaded as
    Python module.

  • FIXED: When loading janus_swi into Python, use janus.pl from Python
    package.

1 Like