Ann: SWI-Prolog 8.1.5

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.

    :champagne: This was made possible by http://SDLT.ai, a startup that donated me a brand
    new MacBook, so I can discontinue my +/- 2006 IMac that refused to
    update beyond El Captain.

  • 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.

    Enjoy — Jan

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

  • 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).

    Symbols defined: HAVE_SYS_CPUSET_H : sys/cpuset.h exists and defines
    CPU_ZERO HAVE_CPUSET_T : type cpuset_t exists HAVE_PTHREAD_NP_H :
    pthread_np.h exists

  • 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)
    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.

    Adding Readline_INCLUDE_DIR to CMAKE_REQUIRED_INCLUDES fixes the
    discovery process.

Package zlib

  • FIX: fixes zlib test, gzip_utf8 The test failed, because of missing
    encoding(utf8) term.
2 Likes