# Ann: SWI-Prolog 9.3.17

**URL:** <https://swi-prolog.discourse.group/t/ann-swi-prolog-9-3-17/8683>\
**Category:** Releases\
**Created:** [December 19, 2024, 12:16pm UTC](https://swi-prolog.discourse.group/t/ann-swi-prolog-9-3-17/8683 "2024-12-19T12:16:27Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)\
**Post date:** [December 19, 2024, 12:16pm UTC](https://swi-prolog.discourse.group/t/ann-swi-prolog-9-3-17/8683/1 "2024-12-19T12:16:27Z")

</div>

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

- 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](https://slproweb.com/products/Win32OpenSSL.html). The Windows binaries have been re-released as **9.3.17-2** (note the **2** ). Anyone wishing to build using the [Docker route](https://github.com/SWI-Prolog/docker-swipl-build-mingw/tree/openssl-workaround) should use the `openssl-workaround` branch for now. See also the [Pack\_list\_installed?](https://swi-prolog.discourse.group/t/pack-list-installed/8677) 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).

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