Did you know ... Search Documentation:
Title for pldoc(default)
Branch: development (switch to stable),
version to version

SWI-Prolog Changelog from version 8.1.20 to 8.1.21

[Jan 23 2020]

  • FIXED: Compilation of single threaded version
  • ENHANCED: Tabling with answer subsumption. This elaborate patch is a
    fundamental rewrite on how answer subsumption stores the aggregated answers and how it relates to the default tabling. It realises the following: - Support well founded semantics under answer subsumption
    • Support tabling SCCs (Strongly Connected Components) holding both normally tabled goals and goals subject to answer subsumption.
    • Add XSB compatible not_exist/1. - Simplify notably the Prolog code for tabling completion for better performance.

[Jan 22 2020]

  • FIXED: build without O_PLMT.

[Jan 19 2020]

  • FIXED: crash in '$tbl_worklist_data'/2 (for table debugging).

[Jan 18 2020]

  • FIXED: Issue#537: stream_pair/3 crashed if the first argument is not a blob (atom or stream pair). Reported by Peter Ludemann.

[Jan 17 2020]

[Jan 14 2020]

  • PORT: Add -with-zlib to the MinGW build instructions for library archive. Matt Lilley.
  • FIXED: Docs says that prompting only depends on the tty property of
    user_input. Implementation also demanded user_output to be a tty. Now according to docs, which is compatible with e.g., bash.

[Jan 12 2020]

  • DOC: Updated docs for prompt/2.
  • MODIFIED: Do not prompt if user_input is not connected to a terminal,
    i.e., stream_property(user_input, tty(true)) is false. After forum messages by Peter Ludemann and Boris Vassilev.

[Jan 11 2020]

  • DOC: deprecate old meta predicates and explain \+/1 vs. not/1.

[Jan 10 2020]

  • FIXED: XSB get_residual/2: also deal with answer subsumption.
  • FIXED: table/1: answer subsumption (mode) specifications with only indexed arguments.
  • ENHANCED: tabling with answer subsumption: as normal tabling, only add the unbound answer skeleton to the answer table.
  • XSB: properly implement not_exists/1.
  • XSB: abort/1 is an XSB built-in rather than defined in error_handler.
  • FIXED: Avoid predicate_property(_:Head, visible) with instantiated
    Head creating empty predicates in all existing modules. This is not a semantic problem, but it wastes resources.

[Jan 9 2020]

  • ADDED: Collect statistics on shared tabling: deadlocks and events where a thread has to wait for a table to be completed by another thread.
  • FIXED: mutex_statistics/0: keeping trackof known mutexes was broken.
  • FIXED: Create the shared_table_space Prolog flag.
  • MODIFIED: resource_error(table_space) is now
    one of resource_error(private_table_space) or resource_error(shared_table_space).

[Jan 8 2020]

  • XSB: :- table/1: accept `as private`.
  • MODIFIED: format/1-3: raise an exception if there are more argument than are consumed by the format. Issue raised by Boris Vassilev on the forum. Note that this may result in good programs now being aborted with an exception. I have little clue as to how many problems this may raise. Introducing a flag to choose between silent operation, warning or error seems an overkill as well though.
  • XSB: Added coninc/1,2 to the gensym module.
  • XSB: Added thread module.
  • XSB: provide thread_shared/1.

[Jan 7 2020]

  • FIXED: Possibly use-after-free while inserting a node in a trie. This patch also fixes the trie/tabling memory usage admin.
  • ENHANCED: read_term/2,3 should not create a new module if the option module(Module) is given but the target module does not exist. Now uses user as this is the default module from which new modules inherit. Made this behaviour explicit in the documentation.

[Jan 6 2020]

[Jan 5 2020]

Package http

[Jan 20 2020]

  • FIXED: Missing cut

[Jan 6 2020]

  • MODIFIED: http_open/3: map cacerts_file(File) to cacerts options.

Package ltx2htm

[Jan 23 2020]

  • ENHANCED: Map some more mathematical symbols to HTML entities.

Package plunit

[Jan 16 2020]

  • DOC: Fix documentation link. Also removes some old files from pre-cmake eras.

Package semweb

[Jan 11 2020]

Package ssl

[Jan 6 2020]

  • MODIFIED: ssl_context/3 option processing. The option cacert_file(File)
    has been deprecated in favor of cacerts(List) to ensure unambiguous merging of options. This notably affects the hook http:open_options/2 when both cacert_file and cacerts options are provided. New rules:
    • Only use cacerts(List) - If there are multiple answers, http:open_options/2 earlier values for cacerts(List) overrule later. For each solution of this hook, cacert_file(File) is mapped to cacerts([file(File)]) before options are merged. - An explicit cacerts(List) in the option list overrules defaults.

    If a cacert_file(File) term is mapped the system prints a deprecated message.

Package table

[Jan 12 2020]

  • PORT: Fix for MacOS by Abramo Bagnara.