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

SWI-Prolog Changelog from version 8.5.4 to 8.5.5

[Jan 9 2022]

  • TEST: Started a few operator tests
  • FIXED: handling postfix operators must reduce the left side before reducing the postfix operator.

[Jan 8 2022]

  • ENHANCED: Issue#24: clause_info/4: reject if term layout returned by expand_term/4 is bogus. This forces the guitracer to revert to decompiling.
  • FIXED: arg xf xf (cascading postfix operators) where the priority of the first is higher than the second must generate a syntax error rather than an incorrect term.

[Jan 7 2022]

  • DEBUG: Fixed duplicate debug id
  • FIXED: print_term/2 handling of postfix operators.

[Jan 6 2022]

  • SECURITY: running plain swipl loads init.pl from the current directory if this file exists. It is not advised to load customisation files from the current directory. We now only load init.pl when explicitly called using swipl -f init.pl while an implicit init file is only loaded from the user_app_config path alias.

[Jan 5 2022]

  • ENHANCED: library(apply_macros) now expands maplist calls with lists known at compile time into a sequence of calls if this is safe and the lists are at most 10 elements long.
  • ADDED: copy_term/4 and copy_term_nat/4. These predicates provide a partial renaming of variables and is used in s(CASP). This patch also improves out-of-memory handling and adds a test suit for copy_term.

[Jan 4 2022]

[Jan 3 2022]

  • FIXED: pack_rebuild/1 if the pack is installed but does not provide binaries for the current architecture. Nicos Angelopoulos.
  • FIXED: SWISH Issue#146: failure to render stacktrace due to failure of message_to_string/2 on ansi(Style, Fmt, Arg) if Arg is not a list.

[Jan 2 2022]

  • ADDED: PL_can_yield() to figure out whether the current execution context allows for yielding control.

[Jan 1 2022]

  • DOC: foreign yield interface

[Dec 31 2021]

  • ADDED: Allow yield/resume from foreign predicates.
  • MODIFIED: Query identifiers now keep track of the engine to which they are associated. As a result, they are now anonymous pointers rather than (pointer wide) integers. Does not affect compatibility except source compatibility when the value is combined with integral types.
  • BUILD: Disable MQI if multi-threading is not enabled.

[Dec 27 2021]

  • FIXED: print_term/2 from entering a loop. Also fixes unneeded parenthesis in lists.
  • FIXED: finding clauses from a source location could crash on thread local predicates

[Dec 23 2021]

  • FIXED: conjunction/disjunction.
  • FIXED: print_term/2: respect write options when computing with of native output.
  • MODIFIED: print_term/2 to get the default right margin from tty_size if the output is a tty and tty_size/2 succeeds.
  • ENHANCED: mkconj/3 and mkdisj/3 to produces a right-grouped term, e.g. ?- mkconj((a,b),c, Conj) Conj = (a,b,c)

    (was Conj = ((a,b),c)).

  • FIXED: We must preserve the pack registration when creating a saved state to make loading foreign resources work.
  • ENHANCED: main/0 to avoid setting up application signal handling and termination when run interactively.

[Dec 22 2021]

  • FIXED: Issue#917: separate S_DYNAMIC and S_MULTIFILE. Jos de Roo.
  • ADDED: print_term/2: options fullstop(Boolean) and nl(Bool). Also lots of documentation restyling and removed old conditional compilation.
  • ENHANCED: print_term/2 to deal with operator expressions that exceed the line width.
  • FIXED: print_term/2: max priority of list elements and compound term arguments to 999 to force parenthesis.
  • FIXED: Issue#917: WAM Table mismatch: wam_table[119(s_static)] == wam_table[124(s_multifile)]

[Dec 21 2021]

  • SNAP: Reverted to core20 because Qt is broken on core20.
  • FIXED: Ensure VMI instruction are on unique addresses. This patch extends 7bf463db4dcc7b4e27c820ef8fc6f94fd8116720 for the case that two VMIs jump to the same real implementation.
  • SNAP: Trying to switch to core20 base. See https://github.com/octave-snap/octave-snap/issues/67

[Dec 20 2021]

  • PORT: Guarantee two VM instructions are not optimized to use the same code.

[Dec 19 2021]

  • FIXED: Ensure bigints are properly indexed on 32-bit platforms.

Package http

[Jan 4 2022]

  • FIXED: Handle ansi(Style, Fmt, Args), url(Pos) and url(URL, Label) message line elements when formulating an HTTP response.

Package jpl

[Dec 30 2021]

  • COMPAT: Allow qid_t to be an opaque pointer.

Package pengines

[Dec 28 2021]

  • FIXED: Pengine emulation of tab/1 to accept an expression.

Package ssl

[Jan 5 2022]

  • PORT: Fix build on OpenBSD 7.0 using LibreSSL LibreSSL 3.4.0 made struct ssl_session_st opaque.

Package xpce

[Jan 7 2022]

  • FIXED: GUI tracer: avoid instantiation error. Kwon-Young Choi.

[Jan 6 2022]

  • FIXED: Allow the Prolog Navigator to work with zero-arity compounds.