# Ann: SWI-Prolog 8.5.0

**URL:** <https://swi-prolog.discourse.group/t/ann-swi-prolog-8-5-0/4516>\
**Category:** Releases\
**Created:** [October 5, 2021, 8:50am UTC](https://swi-prolog.discourse.group/t/ann-swi-prolog-8-5-0/4516 "2021-10-05T08:50:44Z")\
**Posts on this page:** 3\
**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:** [October 5, 2021, 8:50am UTC](https://swi-prolog.discourse.group/t/ann-swi-prolog-8-5-0/4516/1 "2021-10-05T08:50:44Z")

</div>

Dear SWI-Prolog user,

SWI-Prolog 8.5.0 is ready for download. This version isn’t much  
different from 8.4.0. It is a normal step in the development cycle. This  
version deals with some portabilty/compatibility issues (MUSL C-lib,  
OpenSSL 3.0, MS SQL Server for ODBC), several minor bug fixes and small  
improvements.

format/2,3 has improved position management for nested calls that may  
result from `~p` or `~@` specifiers such that these can use  
ansi\_format/3 to add attributed (color, bold, etc.) to the output.

```
Enjoy --- Jan

```

# SWI-Prolog Changelog since version 8.3.29

- DOC: Document key `pc` of prolog\_choice\_attribute/3

- FIXED: 91d73fb8a859c6e0f0d97ff553f96903816bc18c triggers another case  
where the falsecount of a node can underflow during re-evaluation.  
Bit dubious.

- DOC: LaTeX formatting error

- FIXED: possible failure to propagate changes in lazy monotonic  
tabling. This happens because answers added during lazy reevaluation  
are propagated _eagerly_, but ‘$idg\_mono\_affects\_eager’/3 didn’t find  
dependencies to non-lazy tables.

- ADDED: pack\_install/1 and friends: pass a _prefix_ flag to CMake or  
configure that follows the same conventions as the installed Prolog  
system.

- ADDED: dcg\_translate\_rule/2 is now declared safe for use in sandboxes.

- ADDED: notraceall/0.

- ADDED: Allow authors of packs to not have an email address or URL.

- ADDED: PL\_cvt\_i\_schar() for explicit signed character handling.

- ENHANCED: dict\_options/2 in mode (-,+) to remove duplicate options,  
keeping the first.

- ENHANCED: Cleanup code for format/2,3. Allow callback’s to cooperate  
with ansi\_format/3.

- ADDED: prolog\_listen/2,3: listen to thread create events.

- ENHANCED: ord\_intersection/2 to raise errors of the input is not a  
proper powerset.

- FIXED: Possible crash enumerating a trie holding indirect values  
against instantiated data. Reported by Eric Zinda.

- FIXED: VMI\_FUNCTIONS build now works with LDFUNC changes

- FIXED: Issue#883: Decompiler to preserve order of arguments to  
optimized +/2 and -/2 functions.

- FIXED: Issue#882: Test failure if xpce is not added to the build.  
Reported by David Tonhofer.

- BUILD: Make building the docs works if X11 is not included.

- FIXED: Completion of lazy monotonic tabling to exclude lazy monotonic  
tables without queued dependencies as there is no point in evaluating  
these now.

- FIXED: Lazy monotonic tabling detection that a mutual dependent  
monotonic dependency network is complete.

- FIXED: Allow listing/1 from a temporary module.

- ADDED: `customize/edit` command to accept `--no-wait` option.  
Requires latest xpce package. Can by used with editor plugin for  
terminator.

- DOC: Updated section “Prolog exceptions in foreign code”. Was pretty  
outdated.

- FIXED: clause/2 moved unification for `s(X) :- X = f(Y), p(Y).`  
Bug introduced in fb96dc77bbd86df31ed7bd2282dd5b20f341f534.

- FIXED: clause/2 (decompiler for moved unification instructions against  
the head.

- DOC: enhanced docs for ;/2, -\>/2, and other control structures.

- PORT: The MUSL C runtime library as used in e.g. Alpino Linux cannot  
safely call pthread\_detach() from the pthread cleanup handler.

- BUILD: Fixed building docs when building without `xpce`.

## Package archive

- PORT: Allow overruling libarchive dependencies.

## Package clib

- ADDED: uuid/2 emulation to allow for `format(integer)`.

## Package http

- MODIFIED: Issue#148: Do not redirect from `/path` to `/path/Var`

- FIXED: Issue#147: JSON parser to reject illegal numbers.

## Package mqi

- PORT: Make password generation work if GMP is not included.

## Package odbc

- FIXED: Properly translate non-ASCII ODBC messages to Unicode.

- FIXED: Cleanup the remains of old work-arounds or broken MS SQLServer  
SQLColumns() and add a new one. odbc\_table\_column/3 stops with the  
error `Invalid Descriptor Index` trying to fetch the column name  
using SQLGetData(). The work-around sets the column with for this  
query to 8K, avoiding SQLGetData(). Thanks to Fernando Sáenz-Pérez  
for reporting and providing access to a server.

## Package protobufs

- TEST: Disable tests that require unbounded integers when GMP is  
not included.

## Package ssl

- PORT: Issue#160: OpenSSL 3.0. Drops option padding(sslv23) from  
rsa\_(private/public)\_(en/de)crypt/4.

## Package swipl-win

- CLEANUP: Avoid deprecated `endl` for Qt \>= 5.14

## Package xpce

- ADDED: PceEmacs server: control whether we kill the editor after  
the command completes. Made available in in the `edit` script as  
`edit --no-wait file:line`.

---

<div class="post-metadata">

**Author:** ![nxiao](https://avatars.discourse-cdn.com/v4/letter/n/f0a364/32.png) [@nxiao](https://swi-prolog.discourse.group/u/nxiao)\
**Post date:** [October 16, 2021, 10:36pm UTC](https://swi-prolog.discourse.group/t/ann-swi-prolog-8-5-0/4516/2 "2021-10-16T22:36:16Z")

</div>

Hi,

Is there any reason why version 8.5.0 for Mac is not available on the download page as usual?

Best,

Nan

---

<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:** [October 17, 2021, 11:33am UTC](https://swi-prolog.discourse.group/t/ann-swi-prolog-8-5-0/4516/3 "2021-10-17T11:33:29Z")

</div>

Forgot to upload …
