Ann: SWI-Prolog 8.1.6

Dear SWI-Prolog user,

I’m happy to announce SWI-Prolog 8.1.6. There are two major changes:

  • Most problems associated with the MacOS bundle should be resolved.
    Unfortunately the oldest compatible MacOS version is 10.12 as this
    is the minimum requirement for Qt 5.12. The release build is no
    longer based on Macports or Homebrew, but on dependencies compiled
    from source, so we have finer control over the configuration.
    See scripts/macos-deps.sh

  • With support from Kyndi and lots of help from Theresa Swift and David
    Warren, SWI-Prolog now supports Well Founded Semantics. See
    http://www.swi-prolog.org/pldoc/man?section=WFS. I’m particularly
    grateful for the hundreds of new tests for tabling.

    For those for which Well Founded Semantics is new, I’ll just mention
    that it is a three valued logic (false/true/unknown) that allows you
    to reason about contradicting as well as ambiguous programs (logical
    statements).

    Note that WFS support is still pretty experimental. The toplevel
    additions and predicates such as call_delays/2 to examine the state
    of unknown answers may be changed in future versions.

    See also https://swish.swi-prolog.org/p/russels%20paradox.swinb

    Enjoy — Jan

SWI-Prolog Changelog since version 8.1.5

  • ADDED: Integrate WFS with the toplevel.

  • TEST: Added XSB PTQ tests

  • TEST: Added (unmodified) XSB delay tests

  • TEST: Include XSB WFS tests

  • ADDED: Tabling to support Well Founded Semantics. Work suppored by
    Kyndi, with lots of help from Theresa Swift and David S Warren.

  • ADDED: portray_clause/3: indent(Indent) option.

  • ADDED: predicate_property/2: tabled(How) property, compatible with XSB.

  • MODIFIED: _PL_get_arg() from void to int return value. Makes it
    easier to use in sequences of &&. Should not harm compatibility.

  • INSTALL: Clarified CMake versions

  • DOC: Fix incorrect argument name Flag -DNATIVE_FRIEND is not used by
    the cmake build, there is only -DSWIPL_NATIVE_FRIEND.

  • TEST: Make test_installation work when swipl is started from a
    relative path.

  • FIXED: possible unneeded fatal stack overflow after an earlier caught
    overflow.

  • TEST: Broken test after fix to assert to a static predicate.

  • PORT: Use --enable-fat for building gmp for the Mac Bundle as
    suggested by Torbjörn Granlund.

  • PORT: Use the self-compiled MacOS dependencies for creating the
    MacOS bundle.

  • PORT: Added scripts/macos-deps.sh to build the MacOS dependencies
    from source.

  • PORT: Allow MACOSX_DEPENDENCIES_FROM to specify a directory with
    the dependencies

  • PORT: Provide correct LDSOFLAGS for compiling extensions from the
    MacOS bundle.

  • PORT: Set MacOS deployment target to 10.12.

Package pengines

  • ADDED: Support for WFS residual programs

  • FIXED: Avoid emitting a no-cache header in the middle of CSV output.

Package readline

  • PORT: Support new -DMACOSX_DEPENDENCIES_FROM=dir
5 Likes

Great stuff Jan! Minor typo on the main WFS page?:

http://www.swi-prolog.org/pldoc/man?section=WFS

Well Founded Semantics allows for reasoning about programs with contraditions

contradictions?

1 Like