Ann: SWI-Prolog 9.1.13

Dear SWI-Prolog user,

The 9.1.12 was a bit of a deception as the binary releases failed on
most systems due to configuration issues with the new Python binding.
This is a retry. If all goes well library(janus) should be in the
Linux PPAs, except for bionic (but including lunar), the Windows
64 bit installer, the MacOS Macports version and teh Docker image.

Cheers — Jan

SWI-Prolog Changelog since version 9.1.12

  • FIXED: Pass check/0 dependency check if tty_size/2 is not defined.

  • PORT: When using Macports for dependencies, set the cmake FrameWork
    search path

  • PORT: Disable swipy (janus) if CMake is older than 3.18.

Package debian

  • ADDED: dependency on Python itself. Although a dependency on
    libpython3-dev is good enough, cmake cannot find the Python conponents
    without Python.

Package clib

  • PORT: Proper ip6 support detection for FreeBSD

Package swipl-win

  • PORT: Updated cmake compatibility to > 3.5

Package swipy

  • FIXED: py_iter/2,3 synchronization Thes predicates did not use the
    functions that lazily initializes Python, take and release the GIL.

  • PORT: Allow using python3.dll on Windows This patch detects the
    presense of python3.dll next to python3xx.dll on Windows
    and, when found uses this dll and builds the interface based only
    on what is in python3.dll. See janus/janus.c comment regarding
    PYTHON3_COMPAT for details.

  • PORT: Windows: make the Python package janus compile and load.

  • PORT: Make janus.c using the MSVC compiler. MSVC is the default
    compiler required by the pip version shipped with the default Windows
    installers.

  • ENHANCED: Improve the Python package Makes the setup more reliable,
    allow using janus.pl from the Python package, allow embedded SWI-Prolog
    to load extensions and properly sets up interactive Prolog usage
    in prolog()

  • ADDED: setup.py, turning the repo into an installable Python
    package This commit reorganises the code such that it both works
    for embedding Python in Prolog and Prolog in Python. It also adds
    more documentation.

  • PORT: Support CMake as of 3.16, provided by Ubuntu bionic

  • PORT: Fix for Python < 3.8

Tried to download for Windows 64-bit

https://www.swi-prolog.org/download/devel/bin/swipl-9.1.13-1.x64.exe

image

It was not listed on the development download page

image


Thanks for the build; waiting to try it. :slightly_smiling_face:

Works fine here. Possibly you had some bad luck that the one backend already had the link and the other not yet the file. Please try again.

1 Like

It is listed now.

image

Was also able to download starting from https://www.swi-prolog.org/download/devel

SWI-Prolog 9.1.13 installed correctly and the Janus test worked.

C:\Users\Groot>cd "C:\Users\Groot\Documents\GitHub\packages-swipy"

C:\Users\Groot\Documents\GitHub\packages-swipy>swipl
Welcome to SWI-Prolog (threaded, 64 bits, version 9.1.13)
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software.
Please run ?- license. for legal details.

For online help and background, visit https://www.swi-prolog.org
For built-in help, use ?- help(Topic). or ?- apropos(Word).

1 ?- pwd.
% c:/users/groot/documents/github/packages-swipy/
true.

2 ?- [test_janus].
true.

3 ?- test_janus.
[51/51] xsb_call:reverse ......................... passed (0.003 sec)
% All 51 tests passed in 0.864 seconds (0.375 cpu)
true.

4 ?- check_installation.
% Checking your SWI-Prolog kit for common issues ...
%
% Version: ............. 9.1.13
% Address bits: ........ 64
% Architecture: ........ x64-win64
% Installed at: ........ c:/program files/swipl
% Cores: ............... 4
%
% Checking gmp ................................. ok
% Loading library(archive) ..................... ok
%   Supported filters: bzip2, compress, gzip, grzip, lrzip, lzip, lzma, lzop, none, rpm, uu, xz
%   Supported formats: 7zip, ar, cab, cpio, empty, gnutar, iso9660, lha, mtree, rar, raw, tar, xar, zip
% Loading library(cgi) ......................... ok
% Loading library(crypt) ....................... ok
% Loading library(bdb) ......................... ok
% Loading library(double_metaphone) ............ ok
% Loading library(filesex) ..................... ok
% Loading library(http/http_stream) ............ ok
% Loading library(http/json) ................... ok
% Loading library(http/jquery) ................. ok
%   jQuery from c:/program files/swipl/library/http/web/js/jquery-3.6.0.min.js
% Loading library(isub) ........................ ok
% Loading library(jpl) ...
% Extended DLL search path with
%   'c:/Program Files/Java/jdk-12/bin/server'
%   'c:/Program Files/Java/jdk-12/bin'
................................................ ok
% Loading library(memfile) ..................... ok
% Loading library(odbc) ........................ ok
Warning: library(pce) .......................... NOT FOUND
Warning: See http://www.swi-prolog.org/build/issues/xpce.html
% Loading library(pcre) ........................ ok
% Loading library(pdt_console) ................. ok
% Loading library(porter_stem) ................. ok
% Loading library(process) ..................... ok
% Loading library(protobufs) ................... ok
% Loading library(readutil) .................... ok
% Loading library(semweb/rdf_db) ............... ok
% Loading library(semweb/rdf_ntriples) ......... ok
% Loading library(semweb/turtle) ............... ok
% Loading library(sgml) ........................ ok
% Loading library(sha) ......................... ok
% Loading library(snowball) .................... ok
% Loading library(socket) ...................... ok
% Loading library(ssl) ......................... ok
% Loading library(sweep_link) .................. ok
%   GNU-Emacs plugin loads
%     M c:/Program Files/swipl/bin/sweep-module.dll
% Loading library(crypto) ...................... ok
% Loading library(table) ....................... ok
% Loading library(time) ........................ ok
% Loading library(unicode) ..................... ok
% Loading library(uri) ......................... ok
% Loading library(uuid) ........................ ok
% Loading library(zlib) ........................ ok
% Loading library(yaml) ........................ ok
Warning: Found 1 issues.
true.

check_installation/0 passes all test when started as “C:\Program Files\swipl\bin\swipl-win.exe” --win_app

Welcome to SWI-Prolog (threaded, 64 bits, version 9.1.13)
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software.
Please run ?- license. for legal details.

For online help and background, visit https://www.swi-prolog.org
For built-in help, use ?- help(Topic). or ?- apropos(Word).

?- check_installation.
% Checking your SWI-Prolog kit for common issues ...
% 
% Version: ............. 9.1.13
% Address bits: ........ 64
% Architecture: ........ x64-win64
% Installed at: ........ c:/program files/swipl
% Cores: ............... 4
% 
% Checking gmp ................................. ok
% Loading library(archive) ..................... ok
%   Supported filters: bzip2, compress, gzip, grzip, lrzip, lzip, lzma, lzop, none, rpm, uu, xz
%   Supported formats: 7zip, ar, cab, cpio, empty, gnutar, iso9660, lha, mtree, rar, raw, tar, xar, zip
% Loading library(cgi) ......................... ok
% Loading library(crypt) ....................... ok
% Loading library(bdb) ......................... ok
% Loading library(double_metaphone) ............ ok
% Loading library(filesex) ..................... ok
% Loading library(http/http_stream) ............ ok
% Loading library(http/json) ................... ok
% Loading library(http/jquery) ................. ok
%   jQuery from c:/program files/swipl/library/http/web/js/jquery-3.6.0.min.js
% Loading library(isub) ........................ ok
% Loading library(jpl) ...
% Extended DLL search path with
%   'c:/Program Files/Java/jdk-12/bin/server'
%   'c:/Program Files/Java/jdk-12/bin'
................................................ ok
% Loading library(memfile) ..................... ok
% Loading library(odbc) ........................ ok
% Loading library(pce) ......................... ok
% Loading library(pcre) ........................ ok
% Loading library(pdt_console) ................. ok
% Loading library(porter_stem) ................. ok
% Loading library(process) ..................... ok
% Loading library(protobufs) ................... ok
% Loading library(readutil) .................... ok
% Loading library(semweb/rdf_db) ............... ok
% Loading library(semweb/rdf_ntriples) ......... ok
% Loading library(semweb/turtle) ............... ok
% Loading library(sgml) ........................ ok
% Loading library(sha) ......................... ok
% Loading library(snowball) .................... ok
% Loading library(socket) ...................... ok
% Loading library(ssl) ......................... ok
% Loading library(sweep_link) .................. ok
%   GNU-Emacs plugin loads
%     M c:/Program Files/swipl/bin/sweep-module.dll
% Loading library(crypto) ...................... ok
% Loading library(table) ....................... ok
% Loading library(time) ........................ ok
% Loading library(unicode) ..................... ok
% Loading library(uri) ......................... ok
% Loading library(uuid) ........................ ok
% Loading library(zlib) ........................ ok
% Loading library(yaml) ........................ ok
% 
% Congratulations, your kit seems sound and complete!
true.

Excuse me @jan but, beside the fact that for the moment I think I’ll stay with version 9.1.12 with all the mess I had to go through yesterday and also on Saturday to make it work, but the version 9.1.13 is not yet available on Macports, right? Or am I doing something wrong? Because if i write port search swi-prolog on the terminal window I get this output:

marco@MacBookoBachini ~ % port search swi-prolog
swi-prolog @9.0.4 (lang)
    SWI-Prolog compiler plus extra packages (stable version)

swi-prolog-devel @9.1.11 (lang)
    SWI-Prolog compiler plus extra packages (development version)

Found 2 ports.

I’ve submitted a PR to Macports and got an acceptance message a few minutes ago. I don’t know how long it takes to be available in port from there.

As for a source build, if you downloaded the sources by cloning the GIT repo, updating to the latest version is really easy:

git pull
git submodule update --init
cd build (or whatever build directory you used)
ninja
(and, optionally) [sudo] ninja install

This works 99% of the cases and is fast because it only recompiles the things that changed. If you upgraded Xcode or Macports significantly, you sometimes have to clean the build directory, run cmake -G Ninja .. again to build. I normally do the above first. If there are failures and I updated Xcode and/or Macports, I do the clean and hope the problems are gone :slight_smile:

2 Likes