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

SWI-Prolog Changelog from version 8.2.0 to 8.2.1

[Jun 28 2020]

  • ENHANCED: thread_signal/1: avoid a max 0.25 sec wait if the signalled thread is blocked on a message queue.
  • PORT: Allow pthread_cond_timedwait() to return EINTR.

[Jun 11 2020]

  • CLEANUP: Term names set to those of ISO Standard
  • DOC: Updated "exception term" page with ISO info

[Jun 27 2020]

  • DOC: Fix typos in manual
  • DOC: Remove outdated status in manual Shared table space limit was added in commit 6a01fbf70447b419447281826e770ec0cd21ab3d

[Jun 26 2020]

  • ENHANCED: Issue#625: library(settings): only save when modified and document persistency issues.
  • FIXED: Consider files loaded from a state already loaded.
  • FIXED: Allow for saved states of more than 4Gb.
  • DOC: add missing documentation for native zip handling predicates.

[Jun 25 2020]

  • ENHANCED: save_settings/1 to use setup_call_cleanup/3 to guarantee reclaiming resources.
  • FIXED: Recursive autoloading when a saved state loads an additional file that sets the Prolog flag autoload to false. Peter Ludemann.

[Jun 18 2020]

  • PPA: Removed support for Ubuntu disco (19.10).

[Jun 17 2020]

  • FIXED: library(prolog_codewalk): handle file/4 message terms. Matt Lilley.
  • FIXED: Location of jpl.jar in development tree to be able to run in the dev tree.
  • PORT: Windows: make condition variable abstraction compile again.
  • ADDED: Foreign API to reuse the internal lock-free hash table implementation.
  • DOC: Removed obsolete section on Boehm-GC support.

[Jun 16 2020]

  • FIXED: Make module enumeration safe for temporary modules. This affects notably current_predicate/1 in SWISH. current_predicate/1 using an unbound module now skips enumeration of temporary modules.

[Jun 15 2020]

  • FIXED: Possible race condition when two threads try to compile the same file.
  • FIXED: Possible inconsistent source file reference count.

[Jun 14 2020]

  • CLEANUP: No longer create a source file object for a derived source. This doesn't seem to be used anywhere and the new garbage collecting approach for source files would reclaim the file immediately anyway.
  • FIXED: Make source file admin use reference counts and delete no longer needed source file admin entries. Discarding them is needed by Pengines. The hard-coded discard from '$destroy_module'/1 could cause a use-after-free issue in SWISH when using :- include(file).. The patch is rather involved. Probably there are easier ways to fix this particular issue. Usage based reclaim of source files is a step towards garbage collecting code in general though.
  • CLEANUP: Property balance '$start_consult'/2 and '$end_consult'/1.

[Jun 12 2020]

  • ADDED: message_queue_property/2: property waiting(-Count) to find the number of threads waiting for this queue.
  • ENHANCED: thread_send_message/2: reduce time the queue mutex is held.
  • FIXED: thread_get_message/1,2 could not wakeup after a message arrived.
  • DEBUG: Improved debug channel MSG_QUEUE, notably avoid printing to the possibly redirected current output using pl_writeln().

[Jun 11 2020]

  • DOC: Format CMAKE.md * Justify paragraphs
    • Align CMake options
    • Align table columns

[Jun 10 2020]

  • DOC: Fix typos in CMAKE.md
  • DOC: Fix typos in manual
  • ADDED: wildcard_match/3. Required because wildcard_match/2 no longer listens to case sensitivity of the file system. Suggested by Keri Harris.
  • FIXED: Missing error case for a non-terminated [.. set. Included more test cases.
  • FIXED: wildcard_match/2: peek after string on unmatched "{"
  • FIXED: wildcard_match/2 and expand_file_name/2 used to print a warning and throw a domain_error on an illegal pattern. It now throws a syntax_error exception.
  • TEST: Added files test dir, now containing test_glob.pl
  • FIXED: Memory leak in text canonicalization
  • FIXED: expand_file_name/2 and wildcard_match/2 - Avoid a possible crash using Unicode patterns. Found by Keri harris. - Fully support Unicode in patterns and file names. - Remove the length limit for compiled patterns (used to be 1024 chars).
  • MODIFIED: wildcard_match/2 used to be case insensitive if file names are case insensitive. Now wildcard_match/2 is always case insensitive.

[Jun 8 2020]

  • DOC: Remove duplicate license information * Move the new license down to replace the old one
    • Refer directly to the license page on the website
    • Update the copyright year
  • FIXED: get_returns_for_call/2: module qualification
  • FIXED: Possible use-after-free

[Jun 6 2020]

[Jun 5 2020]

  • BUILD: When building the MacOS bundle, tell CMake not to look into the Macport bin, lib and include. We want to use our own dependencies that are compiled for MacOS 10.12 and later rather than the Macport ones that are for the current OS and for others we want the MacOS native libraries to reduce our footprint.
  • FIXED: keep pending choicepoint frames visible to the stack shifter

[Jun 4 2020]

  • FIXED: prolog_frame_attribute/3 getting local variables for a frame after backtracking to the next clause could unify with a non-initialized var.

[Jun 3 2020]

  • DEBUG: Wrong CHK_SECURE assertion.
  • FIXED: Added missing release_def() for computation of the size property of predicates. May prevent clause garbage collection.

[Jun 2 2020]

  • FIXED: Changed unviewable background color for DCG right hand context

[Jun 1 2020]

  • DOC: Removed unix/1 docs from main manual as this is merely a partial Quintus emulation.
  • DOC: char_type/2: updated general description.

[May 28 2020]

  • DOC: Use consistent command line option names
  • DOC: Fix typos in manual

[May 29 2020]

  • DOC: Testing options
  • FIXED: Be more selective in classifying files as library files. Notably do not make the test files library files as this breaks the XSB emulation and thus test_installation/0.
  • TEST: Allow all XSB tabling tests to run in one Prolog instance to facilitate coverage analysis.
  • TEST: Avoid basic tabling tests to succeed with a choicepoint if there are (already) shared tables.
  • TEST: Include tabling tests when calling test.pl
  • BUILD: Redefine __assert_fail() in a more safe way that allows --keep-inline-functions.

[May 28 2020]

  • MAINTENANCE: Added scripts/gcov-swipl to gather coverage information to access the completeness of our test set as well as PGO optimized build.
  • DOC: tcp_sockopt/2 must be tcp_setopt/2. Adrian Wong.
  • DOC: Fix typos in manual
  • BUILD: Fix PGO build to first install the library
  • DOC: Added documentation for dealing with releases

[May 27 2020]

  • 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

[May 28 2020]

[May 27 2020]

  • PACKAGE: Work on script to automate updating Macports releases
  • MACOS: build using GCC-10

[May 28 2020]

  • DOC: Added documentation for dealing with releases

[May 27 2020]

  • 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

[May 28 2020]

[May 27 2020]

  • PACKAGE: Work on script to automate updating Macports releases
  • MACOS: build using GCC-10
  • TEST: More robust version of settings:save_default
  • TEST: More robust version of settings:save_default

Package bench

[May 28 2020]

  • OPTIMIZE: Extend the benchmark set with clpfd nqueens

Package chr

[Jun 18 2020]

  • BUILD: Lacking dependency may cause build failures.

Package clib

[May 31 2020]

  • FIXED: library(time): pthread_cond_signal() was called without holding the mutex. Although allowed, this can result in unpredictable behaviour. Notably, if may cause cleanup of the library to deadlock.

Package cpp

[Jun 14 2020]

  • ENHANCED: Add copy constructor. This prevents warnings from modern compilers and preserves the existing copy semantics.

Package http

[Jun 19 2020]

[Jun 15 2020]

  • ENHANCED: HTTP workers for new connections to keep track of the activity rate and adjust to the best wait policy, trading time for memory minimisation.
  • ENHANCED: http server backlog changed from 5 to 64. Probably doesn't have much effect, but 5 seems old school.

[Jun 12 2020]

  • FIXED: library(http/http_dyn_workers) could start far too many workers due to (1) waiting a negative time to check the queue was draining and (2) not respecting the max_workers setting.

[May 29 2020]

  • TEST: Disable public network tests by default

Package jpl

[Jun 27 2020]

  • DOC: Added link to JPL Github repo in main page

[Jun 18 2020]

  • ADDED: Unit testing for checking Prolog and JPL Exceptions
  • IMPROVED: documentation, tutorials and initialization of engine

[Jun 17 2020]

  • IMPROVED: doc pages, much better Development section
  • ADDED: Maven dependency for jpl.jar in doc
  • ADDED: Extended POM to deploy packages on GitHub
  • ADDED: Github Maven building process

[Jun 16 2020]

  • UPDATED: Javadoc with Dict included
  • CLEANUP: Removed obsolete and unused code from org.jpl7.util

[Jun 15 2020]

  • BUILD: Avoid warning if junit.jar is not present

[Jun 14 2020]

  • ADDED: Maven support and dir layout - Upgraded to 7.6.1
  • MODIFIED: move all examples to src/examples/ folder - Fixed #62

[Jun 12 2020]

  • ADDED: Dictionaries support

[May 10 2020]

  • ADDED: Dictionary as a type of Term

[Jun 5 2020]

Package ltx2htm

[Jun 2 2020]

  • FIXED: Prevent smart quotes in a code environment.

Package pengines

[Jun 12 2020]

  • ADDED: Make pengines redirected I/O work on created threads.

Package pldoc

[Jun 10 2020]

  • FIXED: Manual to serve e.g., /pldoc/doc_for?object=*->/2''.

[Jun 4 2020]

  • ADDED: rewrite_ref/4 for gloss class Glossary references were broken (404) in doc_server because doc_server didn't rewrite the glossary references.

    Adding rewrite_ref/4 for gloss class will enable rewriting of the glossary references in doc_server.

Package semweb

[May 29 2020]

  • TEST: Disable public network tests by default

Package ssl

[May 29 2020]

  • TEST: Disable public network tests by default

Package xpce

[Jun 16 2020]

  • ENHANCED: Better visible current tab and better positioning of the label.

[May 28 2020]

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