Ann: SWI-Prolog 8.1.16

Dear SWI-Prolog user,

I’m happy to announce the release of SWI-Prolog 8.1.16. This version
comes with a couple of important patches and completion of the new
config file structure. Highlights:

  • Fixed Error in standard order of terms related to [], ISO
    latin 1 and wide atoms. May result in wrong sort results for
    lists that contain all three.
  • Possibly memory corruption due to freeing tables (tabling)
    caused by a write-after-free bug.
  • Possibly memory corruption due to freeing temporary modules
    as used by the Pengine implementation.
  • Avoid creating config directories if the parent directory is
    not owned by the process. This notably avoids creating
    directories owned by root if the system is executed under
    sudo.

MODIFIED: the system no longer considers a directory lib below the
working directory as a library. See below.

Enjoy --- Jan

P.s. virustotal gives one false positive. We’ll see how Google is going to handle this.

SWI-Prolog Changelog since version 8.1.15

  • FIXED: Single threaded compilation

  • FIXED: When removing predicates from a temporary module we can
    destroy the indexes early. This saves time and memory and avoids a
    write-after-free bug.

  • FIXED: Avoid writing to a freed allocation pool.

  • DOC: Issue#401: duplicate docs for guitracer/0. Also updated docs
    for trace/2.

  • ENHANCED: Removed sinh and cosh functions from ifprolog emulation as
    these are built in.

  • DOC: Issue#379: absolute_file_name/3 on directories.

  • FIXED: Issue#516: library(progman) string compatibility. Paulo
    Moura. Also reenables installing this library on Windows.

  • FIXED: Issue#92: [] was ordered between ISO-latin-1 and wide atoms,
    which could lead to inconsistent ordering. Now, the ordering
    is blobs @< reserved symbols @< text atoms

  • FIXED: check_config_files/0: old location of packs is
    ~/lib/swipl/pack. Paulo Moura.

  • CONFIG: check_installation/0: check for config files. Added
    update_config_files/0 to move config files to their new location.

  • ENHANCED: Avoid creating config files and directories below directories
    not owned by the process

  • ADDED: ‘$my_file’/1 to check that the user running the current process
    owns a given file.

  • MODIFIED: Stop handling lib below the current directory as
    a library directory. Loading from local files should be
    considered a security risk. You can keep using this by adding
    user:file_search_path(library, lib).

    to your project or (if you insist) your personal init file

  • BUILD: Use -f none for manual build steps to avoid dependencies on
    the personal init file.

  • PPA: Added eoan to list of distributions

Package http

  • ADDED: http_reply_dirindex/3 and directory_index/2: option
    name(Callable) to hook the name cell creation.

Package pldoc

  • FIXED: issue#470: get source links for unqualified predicates from
    the system’s main sources. Falco Nogatz.

Package xpce

  • ENHANCED: Prevent creating a config dir below a directory not owned
    by the process.
2 Likes