Ann: SWI-Prolog 8.3.0

Dear SWI-Prolog user,

This is a minor release, mostly for moving the development branch to
8.3.x numbering. Nevertheless, there are also a few useful patches and a
lot of documentation typos and inconsistencies fixed by Adrian Wong.
Thanks!

For the MacOS binaries I switched to gcc-10 as the performance was
significantly better for Linux. Haven’t compared the result on the Mac
between the two gcc versions. As is though, on the Peirera benchmark we
have 10.24 sec for the binary bundle (gcc-10) and 13.34 sec for the
Macports build (Xcode 11.5).

I’ve also added some scripts to streamline testing and upgrading the
Macports version. Now involved into some reviewing with the Macport
maintainers to make it all nice and shiny again. If this is a one-time
job, I think I can almost fully automate the Macport upgrades, so no
need for a maintainer.

Enjoy --- Jan

SWI-Prolog Changelog since version 8.1.32

  • TEST: Fix Macport testing for save_settings/1. It turns out that the
    /tmp dir is not considered writeable in the macport build environment
    while it is. Therefore we create the file explicitly.

  • DIST: Make script/make-src-tape work on MacOS

  • DOC: save_settings/1,2

  • PACKAGE: Work on script to automate updating Macports releases

  • MACOS: build using GCC-10

  • TEST: More robust version of settings:save_default

  • PORT: Handle Windows NetBIOS file names.

  • DOC: Fix typos in manual

  • DOC: Use hyphen as word-separator for long options * For ease of
    reference, the options names are consistent across
    the reference manual, man page, and --help message.

    • For better readability, the options names stand out from their
      corresponding Prolog flags. e.g. --stack-limit vs stack_limit
  • DOC: Fix missing hyphens in command line options

  • DOC: Remove invalid short options

  • DOC: Sort prolog flags

  • PORT: Windows: Recognise //wsl$/ as a share name. Eric Taucher.

  • ENHANCED: Issue#218: portray_clause/2,3 to handle
    variable_names(Bindings) option (Markus Triska) and move
    documentation from the core to PlDoc docs from library(listing).

  • DOC: Fix typos in manual

  • MODIFIED: When term-expanding a directive, see whether the goal can
    be autoloaded and if so, do this. This deals with the common
    case where a directive is also defined as a predicate. Failing to
    autoload does not generate an error and thus allows expansion to
    continue as normal.

  • FIXED: Do not save tmp_dir Prolog flag. Matt Lilley.

  • FIXED: rounding mode when promoting negative rationals to floats

  • CLEANUP: Silence gcc-10 warnings (benign)

  • FIXED: Ensure separation of S_DYNAMIC and S_STATIC VMI (decompilation)

Package clib

  • ENHANCED: Handle EISCONN under non-windows systems too. This happens
    when we retry to connect due to interrupt/signal but we actually
    already have established an connection and can safely return here.

Package cpp

  • DEMO: Illustrate malloc/tmalloc issues.

Package jpl

  • BUILD: Silence messages about JNI_INCLUDE_DIRS/JNI_LIBRARIES

Package pldoc

  • DOC: Index documented multifile hooks from modules.

  • ADDED: > blockquote support.

Package ssl

  • BUILD: Missing dependency for building tests

Package xpce

  • MAN: Removed xpce.1 and updated xpce-client.1
2 Likes

/Well Founded Semantics/ :slight_smile:

Still seeing these errors when I build with ninja -j 1 (only visible with a “dumb” terminal):

[462/2391] Generating tests/test_certs/generated
ERROR: /home/peter/src/swipl-devel/build/home/swipl.rc:207:
ERROR:    /home/peter/src/swipl-devel/packages/xpce/swipl/swipl-rc:135: Initialization goal raised exception:
ERROR:    source_sink `library(swi_hooks)' does not exist
[819/2391] Generating pldoc2tex
ERROR: /home/peter/src/swipl-devel/build/home/swipl.rc:207:
ERROR:    /home/peter/src/swipl-devel/packages/xpce/swipl/swipl-rc:135: Initialization goal raised exception:
ERROR:    source_sink `library(swi_hooks)' does not exist
ERROR: /home/peter/src/swipl-devel/packages/xpce/swipl/swipl-rc:135: Initialization goal raised exception:
ERROR: source_sink `library(pce)' does not exist

There is no version line. Could it be your git pull is blocked due to a local change and you are in fact still running the old version? Try git status and git describe.

Sorry about that – it appears that my git forks have got into a totally messed up state.

I followed the canonical advice (https://xkcd.com/1597/) and it builds clean now.

Some tricks:

  • Do not commit onto the master branch of your fork. If you want to make edits, create a topic branch. That also keeps pull requests clean.

  • Typically I clone from the original and my fork as an additional remote using git add remote fork URL-of-fork Now, origin is the original source and fork is my fork.

  • If you messed up your local copy, this re-syncs

    git fetch
    git reset --hard origin/master
    
  • If you messed up the checked out version, this avoids a new clone (use -xnd to see what it will remove)

    git reset --hard [origin/master]
    git clean -xfd
    git submodule foreach git clean -xfd

Use your shell’s git extensions. They change the prompt to indicate the current branch and its status (clean, dirty, merging, etc.).

1 Like