# Ann: SWI-Prolog 8.1.5

**URL:** <https://swi-prolog.discourse.group/t/ann-swi-prolog-8-1-5/565>\
**Category:** Releases\
**Created:** [April 21, 2019, 11:46am UTC](https://swi-prolog.discourse.group/t/ann-swi-prolog-8-1-5/565 "2019-04-21T11:46:38Z")\
**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:** [April 21, 2019, 11:46am UTC](https://swi-prolog.discourse.group/t/ann-swi-prolog-8-1-5/565/1 "2019-04-21T11:46:38Z")

</div>

Dear Prolog user,

SWI-Prolog 8.1.5 is ready for download. This release is the result of an  
unusual number of new patch contributers. A growing active community is  
really great news! I think Anne Ogborn deserves a big applause for her  
courses, publicity in conferences, social media and much more!

Highlights:

- FreeBSD portability by Michael Figiel.

- Improved MacOS support, notably for the app/bundle: fixed font and  
settings menu issues, make swipl-ld work much better. The lastest  
bundle is built on MacOS 10.14.3. The Java interface (JPL) was built  
against OpenJDK 11, which replaces Oracle Java as it is no longer  
possible to download the Oracle Java SDK without without registering  
with Oracle. I expect this still allows people to use other Java VMs.  
Qt, used for the _app_ window is upgraded to 5.12.3. This cause a  
significantly larger installer.

- Anne Ogborn contributed support for SameSite attributes to session  
cookies, closing some security issues.

- library(archive) patches to deal elegantly with short (incomplete)  
archives.

- Fix to tabling answer subsumption, introduced by recent changes to  
achieve _local scheduling_. Needed for several of the probabilistic  
extensions by Fabrizio Riguzzi.

- Further fix dealing with thread-local predicates in temporary (SWISH)  
modules (crashed).

- Several, mostly contributed, documentation fixes and clarifications.

# SWI-Prolog Changelog since version 8.1.4

- DOC: updated the calc foreign example.

- PORT: MacOS: When running as bundle, report the Frameworks directory  
of the bundle as the location for the dylibs.

- PORT: On MacOS use `cc` and `c++` as compilers in `swipl-ld`.  
The CMake compiler is a specific version from XCode while we should  
rely on the general Xcode cli tools.

- FIXED: Component merging for answer subsumption. Fabrizio Riguzzi.

- TEST: Tabling answer subsumption test by Fabrizio Riguzzi.

- PORT: Fixup Info.plist for MacOS version. See  
[https://github.com/SWI-Prolog/issues/issues/84](https://github.com/SWI-Prolog/issues/issues/84)

- FIX: fixes a suplus dot in a test

- PORT: fixes 91f03daf6, FreeBSD headers Contrary to my claim in  
91f03daf6, pthread.h doesn’t pull in the files necessary to consume  
sys/cpuset.h, but sys/param.h does.

- DOC: Updated README.md

- DOC: Locale initialization

- PORT: adds checks and ifdefs for FreeBSD headers and cpuset\_t The  
cmake checks the system for sys/cpuset.h headers and the typedef from  
commit ec92f5cbe via check\_c\_source\_compiles, because the sys/cpuset.h  
can’t be used on it’s own (it needs sys/cdefs.h and sys/types.h,  
which are both included by pthread.h anyways, so that’s what’s used  
in the checks).

- DOC: PL\_chars\_to\_term() after request on forum.

- FIXED: verify\_safe\_declaration/1 leaves a choicepoint

- FIXED: clause\_info/2: possible too native unification can lead to  
incorrect results. Alan Baljeu.

- BUILD: Clarified some issues in `CMAKE.md`.

- FIXED: Cleanup of thread-local procedures in temporary modules  
failed if the localization was only effectuated in a high thread id.  
This patch refines 81b1c29e0b98c05fd0ca6db6dffbe246e8546408.

- MAINTENANCE: Make `-DMAKE_BUILD_TYPE=Sanitize` work on Fedora.

- ADDED: xref\_callers/5 which includes caller’s line number

## Package archive

- FIXED: error return and avoid compiler warning.

- FIXED: Error handling when hitting end-of-file while skipping an  
archive entry. Also made error reporting more robust.

- ENHANCED: Print more human friendly messages from archive errors.

## Package clib

- DOC: intro for UDP sockets updated.

- ENHANCED: Make UDP inbound thread restart automatically if it dies

## Package http

- ADDED: a json:json\_write\_hook/4 hook to allow for end-user control  
over objects

- DOC: Fixed a minor typo.

- FIXED: Issue#91: mime\_pack/3: lacking cut causes bad behaviour on  
backtracking.

- SECURITY: Add `SameSite` attribute to session cookies using the  
default setting `lax`. This protects against [Cross Site Resource  
Forgery(CSRF)](https://www.owasp.org/index.php/SameSite) exploits.

## Package paxos

- ADDED: paxos\_admin\_key/2 to get supported access to changes to the  
quorum and nodes considered dead. Also fixes some mistakes in the  
documentation.

## Package pcre

- FIXED: Issue#91: re\_match/3: `anchored(true)` was not processed.

## Package pldoc

- FIXED: Avoid exception looking for non-existing file in wiki text.

## Package readline

- PORT: FreeBSD: fixes warnings about implicit declarations of readline  
funcs The readline/history.h was neither found nor included on FreeBSD,  
but the readline library was, so the comiler generated warnings about  
the read\_history and write\_history being implicitly defined.

## Package zlib

- FIX: fixes zlib test, gzip\_utf8 The test failed, because of missing  
encoding(utf8) term.
